ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseオペレーション・ガイド
リリース7.0
E05167-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

システムとデータ・ストアのチューニング

十分なメモリーの用意

パフォーマンスへの影響: 大

データ・ストア全体がメイン・メモリーに収まるように、システムを構成してください。仮想メモリーを使用すると、パフォーマンスが大幅に低下します。パフォーマンス監視ツールによって、過度のページングや仮想メモリー・アクティビティが示される場合は、データ・ストア(作業セット)のサイズは適切ではありません。

大容量の共有メモリーをプロセスに割り当てるには、物理メモリーの追加やシステム・ソフトウェアの設定が必要な場合もあります。データ・ストアのサイズ見積りには、TimesTenのttSizeユーティリティを使用できます。

データ・ストア・サイズの適切な設定

パフォーマンスへの影響: 不定

データ・ストアの作成時には、そのサイズを指定する必要があります。具体的には、データ・ストアの永続パーティションと一時パーティションのサイズを指定します。

データ・ストアを作成した後、永続パーティションのサイズは増加することができ、一時パーティションのサイズは増減することができます。詳細は、「データ・ストアのサイズの指定」を参照してください。

サイズを見積るには、ttSizeユーティリティを使用するか、または適切な見積りが得られるまでアプリケーションを実行します。

また、SYS.MONITOR表を使用しても、必要なサイズを見積ることができます。データ・ストアに割り当てられているサイズや使用中のサイズは、PERM_ALLOCATED_SIZE、TEMP_ALLOCATED_SIZE、PERM_IN_USE_SIZE、TEMP_IN_USE_SIZEなどの列にKB単位で表示されます。この情報は、接続または接続の解放を行ったとき、およびトランザクションのコミットまたはロールバックを行ったときに、その都度更新されます。

データ・ストアの断片化は、ttBlockInfoを使用してブロック・レベルで監視できます。

LogBuffSizeの増加(必要な場合)

パフォーマンスへの影響: 大

LogBuffSizeの値を大きくすると、パフォーマンスが大幅に向上する可能性があります。LOG_BUFFER_WAITSが大きくなっている場合は、LogBuffSizeの値を大きくします。

デメリットは、メモリーにバッファされるトランザクションが増え、プロセスがクラッシュしたときに失われるトランザクションが多くなる可能性があることです。DurableCommitsが有効になっている場合は、デフォルトのLogBuffSize値を大きくしてもパフォーマンスは改善されません。

一時データ・ストアの使用(適切な場合)

パフォーマンスへの影響: 不定

TimesTenには、永続データ・ストアと一時データ・ストアがあります。一時データ・ストアは、最後の接続を解放した場合、あるいはシステムまたはアプリケーションに障害がある場合に破棄されます。

データ・ストアをディスクに保存する必要がない場合は、一時データ・ストアを作成することで、チェックポイントのオーバーヘッドを軽減できます。

ディスクへのロギングを有効にしている場合、ログは定期的にディスクに書き込まれますが、一時データ・ストアが完全にチェックポイントでディスクに書き込まれることはありません。永続データ・ストアの場合、データ・ストアのサイズとアクティビティによっては、チェックポイント処理がかなりのオーバーヘッドとなる可能性がありますが、一時データ・ストアの場合は、影響はほとんどありません。ログ・ファイルを削除するには、チェックポイントが必要になります。

接続オーバーヘッドの回避

パフォーマンスへの影響: 大

デフォルトでは、アイドル・データ・ストア(接続のないデータ・ストア)は、最初の接続が確立されたときに、メモリーにロードされます。最後のアプリケーションのデータ・ストアへの接続が切断されると、ディスクへのデータ・ストアの書込み時に遅延が発生します。アプリケーションとデータ・ストア間の接続と切断が連続して行われる場合は、メモリーへのデータ・ストアのロードとアンロードも連続して行われる可能性があるため、過度のディスクI/Oおよびパフォーマンスの低下が発生します。同様に、使用するデータ・ストアが非常に大きい場合は、アプリケーションでデータ・ストアが使用される前に、メモリーにデータ・ストアをロードしておくようにしてください。

データ・ストアをメモリーにロードする際の遅延を回避するには、データ・ストアのRAMポリシーを変更して、データ・ストアがメモリーに常駐できるようにします。この方法のデメリットは、データ・ストアがメモリーからアンロードされないため、最後の接続を切断してもチェックポイントが発生しないことです。このため、ログ・ファイルで占有されているディスク領域を解放するには、データ・ストアのチェックポイント処理をアプリケーションで明示的に実行する必要があります。

また、一定期間だけデータ・ストアをメモリーに常駐させ、新しい接続を受け入れるように指定することもできます。この期間に新しい接続が確立されなかった場合、データ・ストアはメモリーからアンロードされ、チェックポイント処理が実行されます。また、システム管理者がデータ・ストアのメモリーからのロードとアンロードを手動で実行できるように設定することも可能です。

データ・ストアのRAMポリシーを変更するには、ttAdminユーティリティを使用します。

複製時のRAMへのデータ・ストアのロード

パフォーマンスへの影響: 大

データ・ストアを複製する際は、ttAdminユーティリティの-ramLoadオプションを使用してください。これにより、データ・ストアは、ブロッキング・チェックポイントでアンロードされるのではなく、接続可能な状態でメモリーに配置されます。「接続オーバーヘッドの回避」を参照してください。

ロード時のOSページングの回避

パフォーマンスへの影響: 中

TimesTenのプラットフォームとなるすべてのオペレーティング・システムでは、メイン・メモリーに動的ファイル・システムのバッファ・プールが作成されます。このバッファ・プールを大きくできる場合は、TimesTenとオペレーティング・システムの両方がファイルのコピーをメモリー内に格納するため、TimesTenの一部の共有セグメントがページ・アウトされます。

実装されたメモリー・サイズの半分よりも小さいデータ・ストアの場合は、この現象が発生しないこともあります。システムによっては、ファイル・システムで使用するメイン・メモリーを制限できます。また、この効果があまりないシステムもあります。HP-UX、SolarisおよびLinux Systemsの場合は、MemoryLock属性を使用してデータ・ストアをメモリー内にロックするかどうかを検討してください。使用した場合は、データ・ストアがページ・アウトされません。

HP-UXの場合は、カーネル・パラメータのdbc_min_pctdbc_max_pctを設定することを検討してください。これらのパラメータでは、ファイル・システムで使用する実メモリーの最小値と最大値をパーセントで設定できます。最大値のデフォルトは50パーセントです。最大値は、10パーセントに引き下げることをお薦めします。

メンテナンス用の特別なオプションの検討

パフォーマンスへの影響: 中

初期ロード時など、特別な処理を実行する場合は、通常とは異なるオプションを選択できます。特に、バルク・ロードを行う場合はLoggingを無効にして、データ・ストア・レベル・ロックを使用することを検討してください。たとえば、ttBulkCpまたはttMigrateを使用するような場合です。これらの設定により、ロード時のパフォーマンスが2倍になることもあります。

使用するドライバの確認

パフォーマンスへの影響: 大

TimesTen Data Managerドライバには、プラットフォームごとに、デバッグ・バージョンと本番バージョンの2種類があります。実際にデバッグを実行しないときは、本番バージョンを使用してください。デバッグ・ライブラリを使用すると、処理がかなり遅くなることがあります。各種プラットフォームのTimesTen Data Managerドライバについては、「DSNの指定」および「ODBCドライバの指定」を参照してください。

Windowsの場合は、ODBC Driver Managerを使用するアプリケーションが、適切なTimesTenドライバにアクセスするDSNを使用していることを確認してください。また、直接リンクされるアプリケーションでは、適切なTimesTenドライバにリンクされていることを確認してください。アプリケーションからは、SQL_DRIVER_NAME引数を指定してODBC SQLGetInfo関数をコールし、使用するドライバを決定できます。

トレース機能の有効化(必要な場合のみ)

パフォーマンスへの影響: 大

ODBCとJDBCには、その両方にアプリケーションをデバッグするためのトレース機能があります。パフォーマンスを重視している場合は、アプリケーションのデバッグ時を除き、トレース機能を無効に設定してください。

JDBCのトレース機能を有効にするには、次のメソッドを使用します。

DriverManager.setLogStream method:

DriverManager.setLogStream(new PrintStream(System.out, true));

デフォルトでは、トレース機能は無効です。このメソッドをコールしてから、JDBCドライバをロードする必要があります。トレース機能を有効にした後、アプリケーションの実行中はトレース機能を無効にできません。

別のJVMの調査

パフォーマンスへの影響: 不定

JRockit、IBMおよびHPでは、Sun JVMより高パフォーマンスのJVMが提供されています。

サブスクライバが多い場合のログ・バッファ・サイズとCPUの調整

パフォーマンスへの影響: 大

多数のサブスクライバを含むレプリケーション・スキームを計画する場合は、次の項目を確認してください。

キャラクタ・セット変換を伴うデータの移行

パフォーマンスへの影響: 不定

データ・ストアの移行時にキャラクタ・セット変換がリクエストされた場合は、キャラクタ・セット変換がリクエストされない場合よりパフォーマンスが低下します。